#include <stdio.h>
#include <stdlib.h>
#include "qrcode.h"

int main() {
    // 要编码的内容（可以是URL、文本等）
    char* content = "https://baidu.com";
    
    // 1. 创建QR码对象
    QRCode* qr = qr_create(
        content,
        0,                // 自动选择版本
        QR_EC_LEVEL_M,    // 纠错级别：中等（15%）
        2,                // 边框大小：2个模块
        4                 // 模块像素大小：4px（控制整体尺寸）
    );

    // 检查创建结果
    if (!qr) {
        printf("❌ 创建QR码失败\n");
        return 1;
    }
    
    // 2. 打印QR码基本信息
    printf("✅ QR码创建成功！\n");
    printf("模块尺寸：%dx%d（模块数）\n", qr->module_count, qr->module_count);
    printf("模块大小：%dpx\n", qr->module_size);
    printf("图片尺寸：%dx%dpx\n", qr_get_width(qr), qr_get_height(qr));
    printf("内容：%s\n\n", content);

    // 3. 在终端显示QR码
    qr_render_to_terminal(qr);

    // 4. 保存为PNG和JPG格式
    printf("\n📁 开始保存图片：\n");
    
    // 保存为PNG（无损格式，推荐）
    QRError err = qr_save_to_file(qr, "baidu_qr.png", QR_FORMAT_PNG);
    if (err == QR_SUCCESS) {
        printf("  ✅ PNG格式：baidu_qr.png\n");
    } else {
        printf("  ❌ PNG格式保存失败（错误码：%d）\n", err);
    }
    
    // 保存为JPG（有损压缩，文件较小）
    err = qr_save_to_file(qr, "baidu_qr.jpg", QR_FORMAT_JPG);
    if (err == QR_SUCCESS) {
        printf("  ✅ JPG格式：baidu_qr.jpg\n");
    } else {
        printf("  ❌ JPG格式保存失败（错误码：%d）\n", err);
    }

    // 5. 释放内存（避免内存泄漏）
    qr_destroy(qr);
    printf("\n🎉 操作完成！\n");
    return 0;
}
